package com.lanchetech.admin.service;


import com.github.pagehelper.Page;
import com.lanchetech.bean.request.PageReq;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.BaseResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.vo.*;
import com.lanchetech.entity.*;

import java.util.List;

public interface FarmService {
    ResultData<BasePageResp<Mailbox>> getMailBoxPage(PageReq req);

    BaseResp editMailBox(Mailbox mailbox);

    ResultData<Mailbox> getMailBoxDetail(Long id);

    BaseResp deleteMailBox(Long id);

    ResultData<BasePageResp<GrassFlowVO>> getGrassFlowPage(PageReq req);

    ResultData<BasePageResp<WaterFlowVO>> getWaterFlowPage(PageReq req);

    ResultData<BasePageResp<FarmUserListVO>> getFarmUserPage(PageReq req);

    ResultData<BasePageResp<FarmProduct>> getFarmProductPage(PageReq req);

    BaseResp editFarmProduct(FarmProduct farmProduct);

    ResultData<FarmProduct> getFarmProductDetail(Long id);

    BaseResp deleteFarmProduct(Long id);

    ResultData<BasePageResp<FarmOrderVO>> getFarmProductOrderPage(PageReq req);

    BaseResp editFarmOrderLogistics(FarmOrder req);

    ResultData<FarmOrderVO> getFarmProductOrderDetail(Long id);

    ResultData<BasePageResp<UserCowListVO>> getUserCowPage(PageReq req);

    ResultData<BasePageResp<UserTreeListVO>> getUserTreePage(PageReq req);

    BaseResp editSaplingConfig(Sapling sapling);

    ResultData<BasePageResp<Sapling>> getSaplingPage(PageReq req);

    ResultData<Sapling> getSaplingDetail(Long id);

    ResultData<BasePageResp<FarmTask>> getFarmTaskPage(PageReq req);

    BaseResp editFarmTask(FarmTask farmTask);

    ResultData<FarmTask> getFarmTaskDetail(Long id);

    BaseResp deleteFarmTask(Long id);
}
